Simultaneous multithreading (SMT) is a processing technique employed by superscalar computer processing units (CPUs) with hardware multithreading. SMT enables multiple threads to run simultaneously on logical processors of the same physical core in a CPU. Instructions are fetched from multiple threads in each execution cycle. This can be achieved by sharing different pipeline resources of the core. Fetched instructions from multiple threads can be executed or handled by any pipeline stage during the same cycle. Generally, the sharing of hardware resources is unbiased and thus, such resources are equally shared among threads executing simultaneously. Similarly, execution cycles are typically divided equally among all the logical processors on an SMT core. As computer architectures evolve, continuous efforts are made to further increase efficiency and optimize performance of processing elements.